Funchat = {
	resizeTimer: null,
	resizeTs: 0,
	dw: 0,
	dh: 0,
};

Prefadoros = null;

Funchat.setup = function() {
	if (!window.opener) return Funchat.paleta();
	if (!window.opener.hasOwnProperty('Prefadoros')) return Funchat.paleta();

	Prefadoros = window.opener.Prefadoros;
	setTimeout(function() {
		if (Prefadoros.funchatNeo) {
			Prefadoros.funchatNeo = false;
			window.location.reload();
		}
		else {
			$(window).on('beforeunload', Funchat.unload);
			$(window).on('unload', Funchat.unload);
			Funchat.dw = window.outerWidth - Prefadoros.funchatLTWH[2];
			Funchat.dh = window.outerHeight - Prefadoros.funchatLTWH[3];
			$(window).on('resize', Funchat.resize1);
			Funchat.resize1();
		}
	}, 100);
}

Funchat.resize1 = function() {
	Funchat.resizeTs = globals.torams();
	$(window).off('resize').on('resize', Funchat.resize2);
	Funchat.paleta();
}

Funchat.resize2 = function() {
	var tora = globals.torams();

	if (tora - Funchat.resizeTs < 500) return;
	Funchat.resizeTs = tora;

	if (Funchat.resizeTimer) clearTimeout(Funchat.resizeTimer);
	Funchat.resizeTimer = setTimeout(function() {
		var l, t, w, h;

		Funchat.resizeTimer = null;
		l = window.hasOwnProperty('screenLeft') ? window.screenLeft : window.screenX;
		t = window.hasOwnProperty('screenTop') ? window.screenTop : window.screenY;
		w = window.outerWidth - Funchat.dw;
		h = window.outerHeight - Funchat.dh;

		window.opener.Client.session.funchatLTWH = l + ':' + t + ':' + w + ':' + h;
		window.opener.Client.fyi.pano('funchat position saved');
		Client.ajax('funchat/savePosition', 'l=' + l, 't=' + t, 'w=' + w, 'h=' + h);
	}, 200);
}

Funchat.unloadFired = false;

Funchat.unload = function() {
	if (Funchat.unloadFired) return;
	Funchat.unloadFired = true;

	Prefadoros.cpanel.flags.funchat = null;
	Prefadoros.cpanel.omadaDixe();
}

$(window).load(function() {
	Funchat.setup();
});

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Funchat.lista = [
	'1',
	'2',
	'3',
	'4',
	'5',
	'6',
	'7',
	'8',
	'9',
	'10',
	'11',
	'12',
	'13',
	'14',
	'15',
	'16',
	'17',
	'18',
	'19',
	'20',
	'21',
	'22',
	'23',
	'24',
	'25',
	'26',
	'27',
	'28',
	'29',
	'30',
	'31',
	'32',
	'33',
	'34',
	'35',
	'36',
	'37',
	'38',
	'39',
	'40',
	'41',
	'42',
	'43',
	'44',
	'45',
	'46',
	'47',
	'AMAN',
	'49',
	'50',
	'51',
	'52',
	'53',
	'54',
	'55',
	'56',
	'57',
	'58',
	'59',
	'60',
	'61',
	'62',
	'63',
	'64',
	'65',
	'66',
	'67',
	'68',
	'69',
	'70',
	'71',
	'72',
	'73',
	'74',
	'75',
	'76',
	'77',
	'78',
	'79',
	'80',
	'81',
	'82',
	'83',
	'84',
	'84a',
	'85',
	'86',
	'87',
	'88',
	'89',
	'90',
	'91',
	'92',
	'93',
	'94',
	'95',
	'96',
	'97',
	'98',
	'99',
	'100',
	'101',
	'102',
	'103',
	'104',
	'105',
	'106',
	'107',
	'108',
	'109',
	'110',
	'111',
	'112',
	'113',
	'114',
	'115',
	'116',
	'117',
	'118',
	'119',
	'120',
	'121',
	'122',
	'123',
	'124',
	'125',
	'126',
	'127',
	'128',
	'129',
	'130',
	'131',
	'132',
	'133',
	'134',
	'135',
	'136',
	'137',
	'138',
	'139',
	'140',
	'141',
	'142',
	'143',
	'144',
	'145',
	'146',
	'147',
	'148',
	'149',
	'150',
	'151',
	'152',
	'153',
	'154',
	'155',
	'156',
	'157',
	'158',
	'159',
	'160',
	'161',
	'162',
	'163',
	'164',
	'165',
	'166',
	'167',
	'168',
	'169',
	'170',
	'171',
	'172',
	'173',
	'174',
	'175',
	'176',
	'177',
	'178',
	'179',
	'180',
	'180a',
	'181',
	'182',
	'183',
	'184',
	'185',
	'186',
	'187',
	'188',
	'189',
	'190',
	'191',
	'192',
	'193',
	'194',
	'195',
	'196',
	'197',
	'198',
	'199',
	'200',
	'201',
	'202',
	'203',
	'204',
	'205',
	'206',
	'207',
	'208',
	'209',
	'210',
	'211',
	'212',
	'213',
	'TPPS',
	'215',
	'216',
	'217',
	'218',
	'219',
	'220',
	'221',
	'222',
	'223',
	'224',
	'225',
	'226',
	'227',
	'228',
	'229',
	'230',
	'231',
	'232',
];

Funchat.paleta = function() {
	var i, item, data, ikona, kimeno, box;

	for (i = 0; i < Funchat.lista.length; i++) {
		if (!Funchat.item.hasOwnProperty(Funchat.lista[i])) continue;
		item = Funchat.item[Funchat.lista[i]];

		data = $('<div>').addClass('funchat_content');

		if (item.hasOwnProperty('i')) {
			ikona = $('<img>').attr({src: Client.funchatServer + item['i']}).addClass('funchat_image');
			if (item.hasOwnProperty('f')) ikona.css({maxWidth: '100%'});
			else if (item.hasOwnProperty('w')) ikona.css({maxWidth: (item['w'] * 10) + '%'});
			data.append(ikona);
		}

		if (item.hasOwnProperty('k')) {
			kimeno = $('<div>').text(item['k']).addClass('funchat_kimeno');
			data.append(kimeno);
		}

		box = $('<div>').addClass('funchat_box').data('kodikos', Funchat.lista[i]).append(data);

		polimesa = false;
		if (item.hasOwnProperty('s')) polimesa = true;
		else if (item.hasOwnProperty('S')) polimesa = true;
		else if (item.hasOwnProperty('y')) polimesa = true;
		else if (item.hasOwnProperty('m')) polimesa = true;
		if (polimesa) {
			polimesa = $('<img>').attr({
				src: '../images/cpanel/entasi.png',
				title: 'Έχει και ήχο',
			}).addClass('funchat_ixos');
			box.append(polimesa).
			on('mouseenter', function() { $(this).find('.funchat_ixos').addClass('funchat_ixosEmfanes'); }).
			on('mouseleave', function() { $(this).find('.funchat_ixos').removeClass('funchat_ixosEmfanes'); });
;
		}

		if (Prefadoros) box.on('click', function(e) {
			Funchat.proetimasia(e, $(this).data('kodikos'));
		});

		$(document.body).append(box);
	}

	delete Funchat.lista;
}

// Η function "proetimasia" καλείται κατά το κλικ επάνω σε κάποιο funchat item.
// Πράγματι, πριν την αποστολή του funchat item στη συζήτηση, προηγείται επεξεργασία
// του λεκτικού. Αυτό γίνεται σε ιδιαίτερο παράθυρο διαλόγου όπου ο χρήστης μπορεί
// να διορθώσει, ή να διαγράψει το λεκτικό και κατόπιν πατάει το πλήκτρο "Αποστολή"
// προκειμένου να αποσταλεί το funchat item με το διορθωμένο λεκτικό στη συζήτηση
// του τραπεζιού.
Funchat.proetimasia = function(e, kodikos) {
	var x, y, item, kimeno, edit;

	e.stopPropagation();
	$('.funchat_dialogos').remove();
	if (!Funchat.item.hasOwnProperty(kodikos)) return;

	// Δεν επιτρέπεται αποστολή funchat item στη συζήτηση του καφενείου.


	x = e.pageX - 200; if (x < 0) x = 100;
	y = e.pageY - 200; if (y < 0) y = 100;

	if ((Prefadoros.optiki.optiki == 'Καφενείο') || Prefadoros.ego.oxiTrapezi()) {
		$('<div>').addClass('dialogos funchat_dialogos').prependTo('#akri').
		siromeno({top: y + 'px',left: x + 'px'}).pineza().anadisi().
		append('<div class="funchat_lathos">Όχι στο καφενείο!</div>').delay(2000).fadeOut();
		Client.sound.tilt();
		return;
	}

	item = Funchat.item[kodikos];
	kimeno = item.hasOwnProperty('k') ? item['k'] : '';

	$('.funchat_dialogos').remove();
	$('<div>').addClass('dialogos funchat_dialogos').prependTo('#akri').
	append($('<img>').addClass('funchat_ikona').attr({src: Client.funchatServer + item['i']})).
	append($('<div>').append('<input id="edit" type="text" value="' + kimeno + '" class="funchat_edit" />')).
	append($('<div>').addClass('funchat_panel').
		append($('<div>').attr({id: 'apostoli'}).dialogosButton('Αποστολή', function() {
			edit = $('#edit').val();
			if (edit == kimeno) edit = '=';
			Prefadoros.sizitisi.apostoli(edit.scriptSafe() + '^' + kodikos, true);
		}).addClass('dialogosButtonOplisate')).
		append($('<div>').dialogosButton('Ακύρωση'))).
	siromeno({top: y + 'px',left: x + 'px'}).pineza().anadisi().

	find('input').
	on('keyup', function(e) {
		e.stopPropagation();
		if (e.which == 13) $('#apostoli').trigger('click');
		else if (e.which == 27) $(this).val('');
	}).
	on('mouseenter', function(e) {	
		e.stopPropagation();
		$('#apostoli').removeClass('dialogosButtonOplisate');
	});

	Client.sound.dialogos();
	$('#edit').select();
}
